package br.com.achemoda.negocio.controller;

import br.com.achemoda.dados.repositorio.RepositorioAdministrador;
import br.com.achemoda.dados.repositorio.RepositorioEmpresa;
import br.com.achemoda.dados.repositorio.IRepositorioAdministrador;
import br.com.achemoda.dados.repositorio.IRepositorioCliente;
import br.com.achemoda.dados.repositorio.IRepositorioEmpresa;
import br.com.achemoda.dados.repositorio.IRepositorioFotoProduto;
import br.com.achemoda.dados.repositorio.IRepositorioProduto;
import br.com.achemoda.dados.repositorio.IRepositorioUsuario;
import br.com.achemoda.dados.repositorio.RepositorioCliente;
import br.com.achemoda.dados.repositorio.RepositorioFotoProduto;
import br.com.achemoda.dados.repositorio.RepositorioProduto;
import br.com.achemoda.dados.repositorio.RepositorioUsuario;

public class Fachada {

	private IRepositorioCliente repositorioCliente;
	private IRepositorioEmpresa repositorioEmpresa;
	private IRepositorioProduto repositorioProduto;
	private IRepositorioAdministrador repositorioAdministrador;
	private IRepositorioUsuario repositorioUsuario;
	private IRepositorioFotoProduto repositorioFotoProduto;
	
	private static Fachada instancia;

    public static Fachada getInstancia() {
      
        if (instancia == null) {
            instancia = new Fachada();
        }
        return instancia;
    }
    
    public Fachada(){
    	repositorioAdministrador = new RepositorioAdministrador();
    	repositorioCliente = new RepositorioCliente();
    	repositorioEmpresa = (IRepositorioEmpresa) new RepositorioEmpresa();
    	repositorioProduto = new RepositorioProduto();
    	repositorioUsuario= new RepositorioUsuario();
    	repositorioFotoProduto = new RepositorioFotoProduto();
    }
    
    //Administrador
    public IRepositorioAdministrador getRepositorioAdministrador(){
        return repositorioAdministrador;
    }
    
    //Cliente
    public IRepositorioCliente getRepositorioCliente(){
        return repositorioCliente;
    }
     
    //Empresa
    public IRepositorioEmpresa getRepositorioEmpresa(){
        return repositorioEmpresa;
    }
    
    //Produto
    public IRepositorioProduto getRepositorioProduto(){
        return repositorioProduto;
    }
    
    //FotoProduto
    public IRepositorioFotoProduto getRepositorioFotoProduto(){
    	return repositorioFotoProduto;
    }

    //Usuario
    public IRepositorioUsuario getRepositorioUsuario(){
			return repositorioUsuario;
    }
    
	
}